
Rajinder Singh
Deep Learning Researcher
TLDR: यह गाइड बोटासॉरस, एक पायथन वेब स्क्रैपिंग फ्रेमवर्क जिसमें बिल्ट-इन एंटी-डिटेक्शन विशेषताएं हैं, और कैपसॉल्वर, एक कैप्चा समाधान API के साथ बड़े पैमाने पर वेब स्क्रैपिंग के दौरान reCAPTCHA v2, reCAPTCHA v3 और Cloudflare Turnstile को स्वचालित रूप से बाहर निकालने के लिए एकजुट करने का वर्णन करता है। मुख्य प्रक्रिया में वातावरण सेट करना, कैपसॉल्वर ब्राउज़र एक्सटेंशन का उपयोग करके कैप्चा पैरामीटर की पहचान करना, पायथन हेल्पर फ़ंक्शन के माध्यम से कैपसॉल्वर API को कॉल करके समाधान टोकन प्राप्त करना, और अंत में बोटासॉरस के माध्यम से टोकन को वेबपेज में निवेश करना शामिल है।

स्केल पर वेब स्क्रैपिंग के दौरान कैप्चा अक्सर स्वचालित पहुंच को ब्लॉक करते हैं। यह गाइड Botasaurus के साथ CapSolver के एक शक्तिशाली वेब स्क्रैपिंग फ्रेमवर्क के साथ एकजुट करने का वर्णन करता है, जो reCAPTCHA v2, reCAPTCHA v3 और Cloudflare Turnstile कैप्चा को स्वचालित रूप से हल करता है।
बोटासॉरस एक पायथन वेब स्क्रैपिंग फ्रेमवर्क है जो ब्राउज़र ऑटोमेशन को सरल बनाता है और बॉट डिटेक्शन के खिलाफ बिल्ट-इन सुरक्षा विशेषताएं प्रदान करता है। यह ब्राउज़र कार्यों के लिए एक स्पष्ट डेकोरेटर-आधारित API प्रदान करता है।
मुख्य विशेषताएं:
@browser के साथ डेकोरेटर-आधारित दृष्टिकोणस्थापना:
pip install botasaurus
आधारभूत उपयोग:
from botasaurus.browser import browser, Driver
@browser()
def scrape_page(driver: Driver, data):
driver.get("https://example.com")
title = driver.get_text("h1")
return {"title": title}
# स्क्रैपर चलाएं
result = scrape_page()
कैपसॉल्वर एक कैप्चा समाधान सेवा है जो विभिन्न कैप्चा प्रकार जैसे reCAPTCHA और Cloudflare Turnstile को हल करने के लिए API प्रदान करता है।
समर्थित कैप्चा प्रकार:
अपना API कुंजी प्राप्त करें:
CAP- से शुरू होता है)pip install botasaurus capsolver requests python-dotenv
अपने परियोजना मूल में एक .env फ़ाइल बनाएं:
CAPSOLVER_API_KEY=CAP-अपना_API_KEY_यहां_रखें
एक साझा व्यवस्था लोडर बनाएं:
# shared/config.py
import os
from pathlib import Path
from dotenv import load_dotenv
# परियोजना मूल से .env फ़ाइल लोड करें
ROOT_DIR = Path(__file__).parent.parent
load_dotenv(ROOT_DIR / ".env")
class Config:
"""कैपसॉल्वर एकीकरण के लिए व्यवस्था वर्ग।"""
# कैपसॉल्वर API कुंजी
CAPSOLVER_API_KEY: str = os.getenv("CAPSOLVER_API_KEY", "")
# कैपसॉल्वर API एंडपॉइंट
CAPSOLVER_API_URL = "https://api.capsolver.com"
CREATE_TASK_ENDPOINT = f"{CAPSOLVER_API_URL}/createTask"
GET_RESULT_ENDPOINT = f"{CAPSOLVER_API_URL}/getTaskResult"
@classmethod
def validate(cls) -> bool:
"""व्यवस्था वैधता की जांच करें।"""
if not cls.CAPSOLVER_API_KEY:
print("त्रुटि: CAPSOLVER_API_KEY सेट नहीं है!")
return False
return True
API के साथ एकीकरण से पहले, आपको लक्ष्य कैप्चा के सही पैरामीटर की पहचान करने की आवश्यकता होती है। कैपसॉल्वर ब्राउज़र एक्सटेंशन अपने आप आवश्यक पैरामीटर की पहचान करने के लिए एक आसान तरीका प्रदान करता है।
Chrome Web Store से कैपसॉल्वर एक्सटेंशन स्थापित करें।
महत्वपूर्ण: कैप्चा ट्रिगर करने से पहले कैपसॉल्वर पैनल बंद न करें, क्योंकि इसे बंद करने से पहले पहचाने गए जानकारी खो जाती है।
एक्सटेंशन सभी आवश्यक reCAPTCHA पैरामीटर की स्वचालित रूप से पहचान करता है:
डिटेक्टर एपीआई एकीकरण के लिए तैयार फॉरमैटेड JSON आउटपुट प्रदान करता है, जो आपके समाधान कार्यों के लिए आवश्यक सटीक पैरामीटर कॉपी करने में आसानी प्रदान करता है।
अधिक जानकारी के लिए, कैप्चा पैरामीटर की पहचान करने के बारे में पूर्ण गाइड देखें।
reCAPTCHA v2 पारंपरिक "मैं एक रोबोट नहीं हूं" चेकबॉक्स कैप्चा है। यह उपयोक्ताओं के लिए छवि चयन चुनौतियां प्रस्तुत कर सकता है।
आप कैपसॉल्वर एक्सटेंशन डिटेक्टर (ऊपर वर्णित) का उपयोग कर सकते हैं या हाथ से साइट की खोज कर सकते हैं:
पृष्ठ HTML में देखें:
<div class="g-recaptcha" data-sitekey="6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"></div>
या जावास्क्रिप्ट में:
grecaptcha.render('container', {'sitekey': '6Le-xxxxx...'});
# utils/capsolver_helper.py
import time
import requests
from shared.config import Config
def solve_recaptcha_v2(
website_url: str,
website_key: str,
is_invisible: bool = False,
timeout: int = 120
) -> dict:
"""
कैपसॉल्वर API के माध्यम से reCAPTCHA v2 हल करें।
आर्ग्स:
website_url: कैप्चा वाले पृष्ठ का URL
website_key: reCAPTCHA साइट की
is_invisible: क्या यह अदृश्य reCAPTCHA v2 है
timeout: समाधान के लिए अधिकतम समय (सेकंड में)
लौटाता है:
'gRecaptchaResponse' टोकन के साथ डिक्ट
"""
if not Config.validate():
raise Exception("अमान्य व्यवस्था - अपना API कुंजी जांचें")
# कार्य लोड बनाएं
task = {
"type": "ReCaptchaV2TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
}
if is_invisible:
task["isInvisible"] = True
payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"task": task
}
# कार्य बनाएं
response = requests.post(Config.CREATE_TASK_ENDPOINT, json=payload)
result = response.json()
if result.get("errorId") and result.get("errorId") != 0:
raise Exception(f"कार्य बनाने में असफल: {result.get('errorDescription')}")
task_id = result.get("taskId")
# परिणाम के लिए पॉल
start_time = time.time()
while time.time() - start_time < timeout:
time.sleep(2)
result_payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"taskId": task_id
}
response = requests.post(Config.GET_RESULT_ENDPOINT, json=result_payload)
result = response.json()
if result.get("status") == "ready":
return result.get("solution", {})
elif result.get("status") == "failed":
raise Exception(f"कार्य असफल: {result.get('errorDescription')}")
raise Exception(f"{timeout} सेकंड के बाद समय सीमा समाप्त हो गई")
from botasaurus.browser import browser, Driver
from shared.config import Config
from utils.capsolver_helper import solve_recaptcha_v2
DEMO_URL = "https://www.google.com/recaptcha/api2/demo"
DEMO_SITEKEY = "6Le-wvkSAAAAAPBMRTvw0Q4Muexq9bi0DJwx_mJ-"
@browser(headless=False)
def solve_recaptcha_v2_with_api(driver: Driver, data: dict):
"""कैपसॉल्वर API के माध्यम से reCAPTCHA v2 हल करें और टोकन निवेश करें।"""
url = data.get("url", DEMO_URL)
site_key = data.get("site_key", DEMO_SITEKEY)
# चरण 1: पृष्ठ लोड करें
driver.get(url)
driver.sleep(2)
# चरण 2: पृष्ठ से साइट की निकालें (वैकल्पिक)
extracted_key = driver.run_js("""
const recaptchaDiv = document.querySelector('.g-recaptcha');
return recaptchaDiv ? recaptchaDiv.getAttribute('data-sitekey') : null;
""")
if extracted_key:
site_key = extracted_key
# चरण 3: कैपसॉल्वर API के माध्यम से कैप्चा हल करें
solution = solve_recaptcha_v2(
website_url=url,
website_key=site_key
)
token = solution.get("gRecaptchaResponse")
# चरण 4: टोकन को पृष्ठ में निवेश करें
driver.run_js(f"""
// छिपे हुए टेक्स्ट क्षेत्र के मान को सेट करें
const responseField = document.querySelector('[name="g-recaptcha-response"]');
if (responseField) {{
responseField.value = "{token}";
}}
// यदि उपलब्ध हो तो कॉलबैक ट्रिगर करें
if (typeof ___grecaptcha_cfg !== 'undefined') {{
try {{
const clients = ___grecaptcha_cfg.clients;
for (const key in clients) {{
const client = clients[key];
if (client && client.callback) {{
client.callback("{token}");
}}
}}
}} catch (e) {{}}
}}
""")
# चरण 5: फॉर्म जमा करें
submit_button = driver.select('input[type="submit"]')
if submit_button:
submit_button.click()
driver.sleep(2)
return {"success": True, "token_length": len(token)}
# डेमो चलाएं
result = solve_recaptcha_v2_with_api(data={"url": DEMO_URL, "site_key": DEMO_SITEKEY})
reCAPTCHA v3 अदृश्य है और उपयोगकर्ता व्यवहार के विश्लेषण के माध्यम से 0.0 से 1.0 के बीच एक स्कोर बनाता है।
v2 से मुख्य अंतर: reCAPTCHA v3 के लिए pageAction पैरामीटर की आवश्यकता होती है।
सबसे आसान तरीका कैपसॉल्वर एक्सटेंशन डिटेक्टर का उपयोग करना है। अन्यथा, पृष्ठ जावास्क्रिप्ट में नीचे देखें:
grecaptcha.execute('siteKey', {action: 'login'})
// 'login' आपका pageAction है
def solve_recaptcha_v3(
website_url: str,
website_key: str,
page_action: str,
timeout: int = 120
) -> dict:
"""
कैपसॉल्वर API के माध्यम से reCAPTCHA v3 हल करें।
आर्ग्स:
website_url: कैप्चा वाले पृष्ठ का URL
website_key: reCAPTCHA साइट की
page_action: कैप्चा एक्शन पैरामीटर (v3 के लिए आवश्यक है)
timeout: समाधान के लिए अधिकतम समय (सेकंड में)
लौटाता है:
'gRecaptchaResponse' टोकन के साथ डिक्ट
"""
if not Config.validate():
raise Exception("अमान्य व्यवस्था - अपना API कुंजी जांचें")
if not page_action:
raise Exception("reCAPTCHA v3 के लिए pageAction आवश्यक है")
# कार्य लोड बनाएं
task = {
"type": "ReCaptchaV3TaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
"pageAction": page_action, # v3 के लिए आवश्यक है
}
payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"task": task
}
# कार्य बनाएं
response = requests.post(Config.CREATE_TASK_ENDPOINT, json=payload)
result = response.json()
if result.get("errorId") and result.get("errorId") != 0:
raise Exception(f"कार्य बनाने में असफल: {result.get('errorDescription')}")
task_id = result.get("taskId")
# परिणाम के लिए पॉल
start_time = time.time()
while time.time() - start_time < timeout:
time.sleep(2)
result_payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"taskId": task_id
}
response = requests.post(Config.GET_RESULT_ENDPOINT, json=result_payload)
result = response.json()
if result.get("status") == "ready":
return result.get("solution", {})
elif result.get("status") == "failed":
raise Exception(f"कार्य असफल: {result.get('errorDescription')}")
raise Exception(f"{timeout} सेकंड के बाद समय सीमा समाप्त हो गई")
from botasaurus.browser import browser, Driver
from shared.config import Config
from utils.capsolver_helper import solve_recaptcha_v3
DEMO_URL = "https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php"
DEMO_SITEKEY = "6LdyC2cUAAAAACGuDKpXeDorzUDWXmdqeg-xy696"
PAGE_ACTION = "examples/v3scores"
@browser(headless=False)
def solve_recaptcha_v3_with_api(driver: Driver, data: dict):
"""कैपसॉल्वर API के माध्यम से reCAPTCHA v3 हल करें और टोकन निवेश करें।"""
url = data.get("url", DEMO_URL)
site_key = data.get("site_key", DEMO_SITEKEY)
page_action = data.get("page_action", PAGE_ACTION)
# चरण 1: पृष्ठ लोड करें
driver.get(url)
driver.sleep(2)
# चरण 2: कैप्चा को कैपसॉल्वर API के माध्यम से हल करें
solution = solve_recaptcha_v3(
website_url=url,
website_key=site_key,
page_action=page_action
)
token = solution.get("gRecaptchaResponse")
# चरण 3: टोकन को पृष्ठ में निवेश करें
driver.run_js(f"""
const token = "{token}";
// छिपे हुए क्षेत्र को सेट करें यदि उपलब्ध है
const responseField = document.querySelector('[name="g-recaptcha-response"]');
if (responseField) {{
responseField.value = token;
}}
// यदि फॉर्म मौजूद है लेकिन क्षेत्र नहीं है, छिपे हुए क्षेत्र बनाएं
const forms = document.querySelectorAll('form');
forms.forEach(form => {{
let field = form.querySelector('[name="g-recaptcha-response"]');
if (!field) {{
field = document.createElement('input');
field.type = 'hidden';
field.name = 'g-recaptcha-response';
form.appendChild(field);
}}
field.value = token;
}});
""")
# चरण 4: सत्यापित करें या फॉर्म जमा करें
buttons = driver.select_all("button")
for button in buttons:
if "सत्यापित" या "जमा" पर बटन के लिए बनाएं:
button.click()
driver.sleep(2)
break
return {"success": True, "token_length": len(token)}
# डेमो चलाएं
result = solve_recaptcha_v3_with_api(data={
"url": DEMO_URL,
"site_key": DEMO_SITEKEY,
"page_action": PAGE_ACTION
})
Cloudflare Turnstile गोपनीयता-केंद्रित कैप्चा विकल्प है जो पारंपरिक कैप्चा के बजाय कम अवांछित होने के लिए डिज़ाइन किया गया है।
reCAPTCHA से मुख्य अंतर:
AntiTurnstileTaskProxyLess हैtoken (नहीं gRecaptchaResponse) है0x4 से शुरू होती हैपृष्ठ HTML में देखें:
<div class="cf-turnstile" data-sitekey="0x4AAAAAAABS7vwvV6VFfMcD"></div>
def solve_turnstile(
website_url: str,
website_key: str,
action: str = None,
cdata: str = None,
timeout: int = 120
) -> dict:
"""
समाधान क्लाउडफ़्लेर टर्नस्टाइल कैपसॉल्वर API के साथ।
आर्ग्स:
website_url: टर्नस्टाइल वाले पृष्ठ का URL
website_key: टर्नस्टाइल साइट कुंजी (0x4 से शुरू होती है)
action: डेटा-एक्शन एट्रिब्यूट से वैकल्पिक कार्य
cdata: डेटा-सीडेटा एट्रिब्यूट से वैकल्पिक सीडेटा
timeout: समाधान के लिए प्रतीक्षा करने का अधिकतम समय (सेकंड में)
वापसी:
'टोकन' क्षेत्र वाला डिक्शनरी
"""
if not Config.validate():
raise Exception("अमान्य कॉन्फ़िगरेशन - अपने API कुंजी की जांच करें")
# कार्य भार बनाएं
task = {
"type": "AntiTurnstileTaskProxyLess",
"websiteURL": website_url,
"websiteKey": website_key,
}
# वैकल्पिक मेटाडेटा जोड़ें
metadata = {}
if action:
metadata["action"] = action
if cdata:
metadata["cdata"] = cdata
if metadata:
task["metadata"] = metadata
payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"task": task
}
# कार्य बनाएं
response = requests.post(Config.CREATE_TASK_ENDPOINT, json=payload)
result = response.json()
if result.get("errorId") and result.get("errorId") != 0:
raise Exception(f"कार्य बनाने में विफल: {result.get('errorDescription')}")
task_id = result.get("taskId")
# परिणाम के लिए पॉल
start_time = time.time()
while time.time() - start_time < timeout:
time.sleep(2)
result_payload = {
"clientKey": Config.CAPSOLVER_API_KEY,
"taskId": task_id
}
response = requests.post(Config.GET_RESULT_ENDPOINT, json=result_payload)
result = response.json()
if result.get("status") == "ready":
return result.get("solution", {})
elif result.get("status") == "failed":
raise Exception(f"कार्य विफल: {result.get('errorDescription')}")
raise Exception(f"{timeout} सेकंड के बाद समय सीमा समाप्त")
from botasaurus.browser import browser, Driver
from shared.config import Config
from utils.capsolver_helper import solve_turnstile
DEMO_URL = "https://peet.ws/turnstile-test/non-interactive.html"
DEMO_SITEKEY = "0x4AAAAAAABS7vwvV6VFfMcD"
@browser(headless=False)
def solve_turnstile_with_api(driver: Driver, data: dict):
"""कैपसॉल्वर API के साथ क्लाउडफ़्लेर टर्नस्टाइल हल करें और टोकन इंजेक्ट करें।"""
url = data.get("url", DEMO_URL)
site_key = data.get("site_key", DEMO_SITEKEY)
# चरण 1: पृष्ठ लोड करें
driver.get(url)
driver.sleep(3)
# चरण 2: पृष्ठ से साइट कुंजी निकालें (वैकल्पिक)
extracted_params = driver.run_js("""
const turnstileDiv = document.querySelector('.cf-turnstile, [data-sitekey]');
if (turnstileDiv) {
const key = turnstileDiv.getAttribute('data-sitekey');
if (key && key.startsWith('0x')) {
return {
sitekey: key,
action: turnstileDiv.getAttribute('data-action')
};
}
}
return null;
""")
if extracted_params and extracted_params.get("sitekey"):
site_key = extracted_params["sitekey"]
# चरण 3: कैपसॉल्वर API के माध्यम से टर्नस्टाइल हल करें
solution = solve_turnstile(
website_url=url,
website_key=site_key,
action=extracted_params.get("action") if extracted_params else None
)
token = solution.get("token")
# चरण 4: टोकन को पृष्ठ में इंजेक्ट करें
driver.run_js(f"""
const token = "{token}";
// cf-turnstile-response फ़ील्ड खोजें और भरें
const responseFields = [
document.querySelector('[name="cf-turnstile-response"]'),
document.querySelector('[name="cf_turnstile_response"]'),
document.querySelector('input[name*="turnstile"]')
];
for (const field of responseFields) {{
if (field) {{
field.value = token;
break;
}}
}}
// यदि फॉर्म मौजूद है लेकिन फ़ील्ड नहीं है, तो छिपा फ़ील्ड बनाएं
const forms = document.querySelectorAll('form');
forms.forEach(form => {{
let field = form.querySelector('[name="cf-turnstile-response"]');
if (!field) {{
field = document.createElement('input');
field.type = 'hidden';
field.name = 'cf-turnstile-response';
form.appendChild(field);
}}
field.value = token;
}});
""")
# चरण 5: फॉर्म जमा करें
submit_btn = driver.select('button[type="submit"], input[type="submit"]')
if submit_btn:
submit_btn.click()
driver.sleep(2)
return {"success": True, "token_length": len(token)}
# डेमो चलाएं
result = solve_turnstile_with_api(data={"url": DEMO_URL, "site_key": DEMO_SITEKEY})
| कैपचा प्रकार | कार्य प्रकार | परिणाम क्षेत्र | आवश्यक पैरामीटर |
|---|---|---|---|
| reCAPTCHA v2 | ReCaptchaV2TaskProxyLess |
gRecaptchaResponse |
websiteURL, websiteKey |
| reCAPTCHA v2 एंटरप्राइज | ReCaptchaV2EnterpriseTaskProxyLess |
gRecaptchaResponse |
websiteURL, websiteKey |
| reCAPTCHA v3 | ReCaptchaV3TaskProxyLess |
gRecaptchaResponse |
websiteURL, websiteKey, pageAction |
| reCAPTCHA v3 एंटरप्राइज | ReCaptchaV3EnterpriseTaskProxyLess |
gRecaptchaResponse |
websiteURL, websiteKey, pageAction |
| क्लाउडफ़्लेर टर्नस्टाइल | AntiTurnstileTaskProxyLess |
token |
websiteURL, websiteKey |
डेटासेंटर आईपी को ब्लॉक करने वाले साइट्स के लिए, प्रॉक्सी विकल्प का उपयोग करें (उदाहरण के लिए, ReCaptchaV2Task) और अपना आवासीय प्रॉक्सी प्रदान करें।
1. टोकन समाप्ति
कैपचा टोकन तेजी से समाप्त हो जाते हैं (आमतौर पर 2 मिनट के भीतर)। हमेशा टोकन का उपयोग जब आपको इसे प्राप्त करते हैं:
# टोकन प्राप्त करें
solution = solve_recaptcha_v2(url, site_key)
token = solution.get("gRecaptchaResponse")
# तुरंत उपयोग करें - बाद में भंडारण न करें
driver.run_js(f'document.querySelector("[name=g-recaptcha-response]").value = "{token}"')
driver.select('button[type="submit"]').click()
2. त्रुटि नियंत्रण
हमेशा API विफलता के लिए उचित त्रुटि नियंत्रण लागू करें:
try:
solution = solve_recaptcha_v2(url, site_key)
except Exception as e:
print(f"कैपचा समाधान विफल: {e}")
# पुन: प्रयास लॉजिक या फॉलबैक लागू करें
3. दर बाधा
अंतर्गत अनुरोधों के बीच देरी जोड़ें ताकि एंटी-बॉट उपाय द्वारा ट्रिगर न हो:
driver.sleep(2) # पृष्ठ लोड के बाद प्रतीक्षा करें
# ... कैपचा हल करें ...
driver.sleep(1) # फॉर्म जमा करने से पहले प्रतीक्षा करें
4. कॉन्फ़िगरेशन की पुष्टि करें
हमेशा मांग करने से पहले अपने API कुंजी की पुष्टि करें:
if not Config.validate():
raise Exception("कृपया .env फ़ाइल में अपने API कुंजी की कॉन्फ़िगरेशन करें")
बोटासॉरस के साथ कैपसॉल्वर का उपयोग करके वेब स्क्रैपिंग परियोजनाओं में कैपचा के साथ एक विश्वसनीय समाधान प्रदान करता है। एपीआई-आधारित दृष्टिकोण आपको कैपचा के समाधान प्रक्रिया पर पूर्ण नियंत्रण प्रदान करता है और विभिन्न कैपचा प्रकारों पर विश्वसनीय रूप से काम करता है।
अपने स्वचालन बजट को तुरंत बढ़ाएं!
कैपसॉल्वर खाता बढ़ाते समय CAPN बोनस कोड का उपयोग करें ताकि प्रत्येक भरोसा पर 5% बोनस प्राप्त करें — कोई सीमा नहीं।
अपने कैपसॉल्वर डैशबोर्ड में अभी बोनस कोड लागू करें
websiteURL और websiteKey पैरामीटर आवश्यक हैंpageAction पैरामीटर की आवश्यकता होती हैtoken क्षेत्र वापस करता हैसबसे प्रभावी तरीका बोटासॉरस जैसे एक विशाल ब्राउज़र स्वचालन फ्रेमवर्क का उपयोग करना है, जो एंटी-डिटेक्शन के साथ ब्राउज़र स्वचालन सरल करता है, और कैपसॉल्वर जैसे एक विशिष्ट कैपचा समाधान API के साथ एकीकृत करें ताकि आवश्यक समाधान टोकन प्राप्त किया जा सके।
बोटासॉरस एंटी-डिटेक्शन के साथ साफ, डिकोरेटर-आधारित API के साथ ब्राउज़र स्वचालन सरल करता है जो लक्षित वेबसाइटों द्वारा निरीक्षण और ब्लॉकिंग के जोखिम को कम करता है।
जबकि दोनों के लिए websiteURL और websiteKey आवश्यक हैं, reCAPTCHA v3 (अदृश्य, स्कोर-आधारित संस्करण) के समाधान के लिए कार्य भार में एक अतिरिक्त pageAction पैरामीटर की आवश्यकता होती है।
जब टोकन (उदाहरण के लिए, gRecaptchaResponse या token) प्राप्त हो जाता है, तो फॉर्म के सफल जमा करने के लिए टोकन को लक्षित पृष्ठ के छिपे फॉर्म फ़ील्ड में तुरंत जोड़ा जाना चाहिए जैसा कि जावास्क्रिप्ट निष्पादन कमांड के माध्यम से किया जाता है।
कैपसॉल्वर द्वारा reCAPTCHA और टर्नस्टाइल के लिए प्रदान किए गए समाधान टोकन बहुत कम समय के लिए वैध होते हैं, आमतौर पर लगभग 2 मिनट में समाप्त हो जाते हैं, इसलिए जब आपको इसे प्राप्त करते हैं तो तुरंत उपयोग करें।
Rust में वेब स्क्रैपिंग के स्केलेबल आर्किटेक्चर सीखें, reqwest, scraper, असिंक्रोनस स्क्रैपिंग, हेडलेस ब्राउज़र स्क्रैपिंग, प्रॉक्सी रोटेशन, और संगत CAPTCHA का निपटारा।

CapSolver के साथ RoxyBrowser के एकीकरण करें ताकि ब्राउज़र के कार्यों को स्वचालित किया जा सके और reCAPTCHA, Turnstile और अन्य CAPTCHAs को बायपास किया जा सके।
